<?php

class Promocoes extends Controller
{
    public function index()
    {	
    	session_start();
		// define dados que serao enviados para as views.
		$dados = Array();
		
		$page = "promocoes";
		
		$promocoes_model = $this->loadModel('PromocoesModel');
		$promocoes = $promocoes_model->consulta();
		
		foreach($promocoes as $promocao){
			// TODO fazer algum tratamento que achar necessario
			if($promocao->foto == ''){
				$promocao->foto = 'default.jpg';
			}
			$promocao->preco = str_replace(".", ",", $promocao->preco);		
		}
		
		$dados['promocoes'] = $promocoes;

        require 'application/views/_templates/header.php';
        require 'application/views/promocoes/index.php';
        require 'application/views/_templates/footer.php';
    }
	
	public function detalhes($id)
	{
		$dados = Array();
		session_start();
		
		$page = "promocoes";
		$promocoes_model = $this->loadModel('PromocoesModel');
		$promocao = $promocoes_model->porId($id);
		
		
		if($promocao->foto == ''){
			$promocao->foto = 'default.jpg';
		}
			// TODO fazer algum tratamento que achar necessario
		$promocao->preco = str_replace(".", ",", $promocao->preco);		

		require 'application/views/_templates/header.php';
        require 'application/views/promocoes/detalhes.php';
        require 'application/views/_templates/footer.php';
	
	}
	
	public function busca()
	{
		session_start();
		$dados = Array();
		
		$page = "promocoes";
		
		// Salva o que foi buscado em uma variável
		$busca = $_GET['busca'];
		
		$promocoes_model = $this->loadModel('PromocoesModel');
		$promocoes = $promocoes_model->busca($busca);
		
		foreach($promocoes as $promocao){
			// TODO fazer algum tratamento que achar necessario
			if($promocao->foto == ''){
				$promocao->foto = 'default.jpg';
			}
			$promocao->preco = str_replace(".", ",", $promocao->preco);		
		}
		
		$dados['promocoes'] = $promocoes;
		
		require 'application/views/_templates/header.php';
        require 'application/views/promocoes/busca.php';
        require 'application/views/_templates/footer.php';
	}	
	
	public function promocao()
	{
		$dados = Array();
		session_start();
		
		if($_SESSION['usuario']['tipous'] == 2){
			$url = URL.'home';
			header("Location: $url");
		}

		$page = "";
		
		require 'application/views/_templates/header.php';
        require 'application/views/promocoes/promocoes.php';
        require 'application/views/_templates/footer.php';
	
	}
	
	
	public function promocao_processa()
	{
		session_start();
		$dados = Array();

		if($_SESSION['usuario']['tipous'] == 2){
			$url = URL.'home';
			header("Location: $url");
		}
		
		$page = "";
		
		if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
			die("método não permitido.");
		}
		
		$nome 		= isset($_POST['nome']) ? $_POST['nome'] : "";
		$descricao 	= isset($_POST['descricao']) ? $_POST['descricao'] : "";
		$preco 		= isset($_POST['preco']) ? $_POST['preco'] : "";
		$desconto 	= isset($_POST['desconto']) ? $_POST['desconto'] : "";
		$loja 		= isset($_POST['loja']) ? $_POST['loja'] : "";
		$periodo 	= isset($_POST['periodo']) ? $_POST['periodo'] : "";

		$banco = Array();
		
		//caso der erro no formulário, volta com os campos preenchidos
		
		$_SESSION['formulario']['promocao']['nome'] 		= $nome;
		$_SESSION['formulario']['promocao']['descricao'] 	= $descricao;
		$_SESSION['formulario']['promocao']['preco']		= $preco;
		$_SESSION['formulario']['promocao']['desconto'] 	= $desconto;
		$_SESSION['formulario']['promocao']['loja'] 		= $loja;
		$_SESSION['formulario']['promocao']['periodo'] 		= $periodo;

		
		if(strlen($nome) < 3){
			$dados['erro']['nome'] = "Nome da promoção inválido.";
		} else {
			$banco['nome'] = $nome;
		}
		
		if(strlen($descricao) < 3){
			$dados['erro']['descricao'] = "Descricao inválido.";
		} else {
			$banco['descricao'] = $descricao;
		}
		
		if((strlen($preco) <= 0) || (strlen($preco) == null)){
			$dados['erro']['preco'] = "Preço inválido.";
		} else {
			setlocale(LC_ALL, "pt_BR", "ptb"); //define cultura da moeda
			$preco = str_replace("R$","",$preco);
			$preco = str_replace(".","",$preco);
			$preco = str_replace(",",".",$preco);
			
			$preco = number_format($preco,2,",",".");
			
			$banco['preco'] = $preco;

		}
		
		if(strlen($desconto) <= 0){
			$dados['erro']['desconto'] = "Desconto inválido.";
		} else {
			$banco['desconto'] = $desconto;
		}
		
		if(strlen($loja) < 3){
			$dados['erro']['loja'] = "Loja inválido.";
		} else {
			$banco['loja'] = $loja;
		}
		
		if(strlen($periodo) <= 0 ){
			$dados['erro']['periodo'] = "Período inválido.";
		} else {
			$datainicio = date('Y-m-d');
			
			$datafim = date('Y-m-d', strtotime($datainicio . ' + ' . $periodo . ' days')); //pega a data inicial e soma com o periodo informado pelo usuario, resultando na data final
			
			$banco['datainicio'] = $datainicio;
			$banco['datafim'] = $datafim;
		}		
		
		
		// Se a foto estiver sido selecionada
		if (isset($_FILES['foto']) && $_FILES['foto']['size'] > 0) {
	 
			// Pega extensão da imagem
			preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $_FILES["foto"]['name'], $ext);
 
			// Gera um nome único para a imagem
			$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
 
			// Caminho de onde ficará a imagem
			$caminho_imagem = "public/uploads/" . $nome_imagem;
 
			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($_FILES['foto']['tmp_name'], $caminho_imagem);
 
			$foto = $nome_imagem;
			$banco['foto'] = $foto;
			
		} else {
			$banco['foto'] = "";
		}
		

		if(isset($dados['erro'])){		
			require 'application/views/_templates/header.php';
			require 'application/views/promocoes/promocoes.php';
			require 'application/views/_templates/footer.php';
		} else {
			$promocoes_model = $this->loadModel('PromocoesModel');
			
			try{
				$banco['id_usuario'] = $_SESSION['usuario']['id'];

				$promocoes_model->adiciona($banco);
				//session_destroy();
				unset($_SESSION['formulario']['promocao']); // destroi a sessão
				
				$url = URL.'home';
				header("Location: $url");													
			} catch (Exception $ex) { 
				require 'application/views/_templates/header.php';
				require 'application/views/promocoes/promocoes.php';
				require 'application/views/_templates/footer.php';
			}
		}
	}


	public function minhas_promocoes($action = '', $id = '')
	{
		$dados = Array();
		session_start();

		if($_SESSION['usuario']['tipous'] == 2){
			$url = URL.'home';
			header("Location: $url");
		}

		$promocoes_model = $this->loadModel('PromocoesModel');
		
		switch ($action) {
			case 'cancel':
				$promocoes = $promocoes_model->cancelarMinhaPromocao($_SESSION['usuario']['id'], $id);
				break;
			
		}

		$page = "";
		
		$promocoes = $promocoes_model->consultaMinhasPromocoes($_SESSION['usuario']['id']);

		$i = 0;

		$promocoes_ativas = null;
		$promocoes_concluidas = null;

		foreach($promocoes as $promocao){
			if($promocao->foto == ''){
				$promocao->foto = 'default.jpg';
			}
			$promocao->preco = str_replace(".", ",", $promocao->preco);		

			if($promocao->diasRestantes > 0){
				$promocoes_ativas[$i] = $promocao;
			}
			else{
				$promocoes_concluidas[$i] = $promocao;
			}

			$i ++;
		}
		
		require 'application/views/_templates/header.php';
        require 'application/views/promocoes/minhas_promocoes.php';
        require 'application/views/_templates/footer.php';
	
	}

	
}
	
	
	
